package com.bto.leasetest.request;


import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author 王小波
 * @description:
 * @date 2023/8/1 8:29
 */
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class BpMasterBaseDto extends RequestBase<BpMasterBaseDto> {
    @JsonProperty("hlsBpMaster")
    private HlsBpMasterDTO hlsBpMaster;
    @JsonProperty("hlsBpMasterAddressList")
    private List<HlsBpMasterAddressListDTO> hlsBpMasterAddressList;
    @JsonProperty("hlsBpMasterMainMembersList")
    private List<HlsBpMasterMainMembersListDto> hlsBpMasterMainMembersList;

    @NoArgsConstructor
    @Data
    public static class HlsBpMasterDTO {
        @JsonProperty("_tls")
        private TlsDTO tls;
        @JsonProperty("age")
        private Long age;
        @JsonProperty("bpCategory")
        private String bpCategory;
        @JsonProperty("bpClass")
        private String bpClass;
        @JsonProperty("bpName")
        private String bpName;
        @JsonProperty("cellPhone")
        private String cellPhone;
        @JsonProperty("gender")
        private String gender;
        @JsonProperty("idCardNo")
        private String idCardNo;
        @JsonProperty("idType")
        private String idType;
        @JsonProperty("innerMap")
        private InnerMapDTO innerMap;
        @JsonProperty("nationality")
        private String nationality;
        @JsonProperty("programId")
        private Integer programId;
        @JsonProperty("requestId")
        private Integer requestId;
        @JsonProperty("serviceType")
        private String serviceType;
        @JsonProperty("profession")
        private String profession;
        @JsonProperty("regnoType")
        private String regnoType;
        @JsonProperty("regno")
        private String regno;

        @NoArgsConstructor
        @Data
        public static class TlsDTO {
        }

        @NoArgsConstructor
        @Data
        public static class InnerMapDTO {
        }
    }

    @NoArgsConstructor
    @Data
    public static class HlsBpMasterAddressListDTO {
        @JsonProperty("_tls")
        private TlsDTO tls;
        @JsonProperty("address")
        private String address;
        @JsonProperty("addressType")
        private String addressType;
        @JsonProperty("cellPhone")
        private String cellPhone;
        @JsonProperty("cityCode")
        private String cityCode;
        @JsonProperty("districtCode")
        private String districtCode;
        @JsonProperty("countryCode")
        private String countryCode;
        @JsonProperty("innerMap")
        private InnerMapDTO innerMap;
        @JsonProperty("programId")
        private Integer programId;
        @JsonProperty("provinceCode")
        private String provinceCode;
        @JsonProperty("requestId")
        private Integer requestId;

        @NoArgsConstructor
        @Data
        public static class TlsDTO {
        }

        @NoArgsConstructor
        @Data
        public static class InnerMapDTO {
        }
    }

    @NoArgsConstructor
    @Data
    public static class HlsBpMasterMainMembersListDto {
        @JsonProperty("mainMembersPosition")
        private String mainMembersPosition;//主要组成成员职位
        @JsonProperty("mainMembersName")
        private String mainMembersName;//主要组成成员姓名
        @JsonProperty("mainMembersCertType")
        private String mainMembersCertType;//主要组成成员证件类型
        @JsonProperty("mainMembersCertCode")
        private String mainMembersCertCode;//主要组成成员证件号码
    }
}
